package es.tikitaka.dao;

import java.util.List;

import es.tikitaka.domain.Temporada;
import es.tikitaka.domain.jugador.EstJugador;

public interface EstJugadorService {

	/**
	 * Método para obtener la lista de los jugadores más goleadores
	 * 
	 * @param temporada
	 * @return
	 */
	List<EstJugador> getListPichichi(Temporada temporada);

	/**
	 * Método para obtener la lista de los porteros menos goleados
	 * 
	 * @param temporada
	 * @return
	 */
	List<EstJugador> getListZamora(Temporada temporada);

	/**
	 * Método para obtener la lista de los jugadores con más faltas
	 * 
	 * @param temporada
	 * @return
	 */
	List<EstJugador> getListFaltas(Temporada temporada);

	/**
	 * Método para obtener la lista de los jugadores con más amonestaciones
	 * 
	 * @param temporada
	 * @param tarjeta
	 * @return
	 */
	List<EstJugador> getListAmonestados(Temporada temporada, String tarjeta);

	/**
	 * Método para obtener la lista de los jugadores que más penaltys han
	 * lanzado
	 * 
	 * @param temporada
	 * @return
	 */
	List<EstJugador> getListPenaltysLanzados(Temporada temporada);

	/**
	 * Método para obtener la lista de los jugadores que más penaltys han
	 * cometido
	 * 
	 * @param temporada
	 * @return
	 */
	List<EstJugador> getListPenaltysCometidos(Temporada temporada);

	/**
	 * Método para eliminar del sistema unas estadisticas de jugador dada
	 * 
	 * @param id
	 *            Id de las estadisticas de jugador a eliminar
	 * @return estado del proceso (true or false)
	 */
	boolean delete(Integer id);

	/**
	 * Método para almacenar en el sistema estadísticas de un jugador
	 * 
	 * @param estadisticas
	 *            Estadísticas a almacenar
	 * @return estado del proceso (true or false)
	 */
	boolean save(EstJugador estadisticas);
}
